home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / sspgv.z / sspgv
Text File  |  1996-03-14  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. SSSSSSSSPPPPGGGGVVVV((((3333FFFF))))                                                            SSSSSSSSPPPPGGGGVVVV((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSPGV - compute all the eigenvalues and, optionally, the eigenvectors of
  10.      a real generalized symmetric-definite eigenproblem, of the form
  11.      A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE SSPGV( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, INFO )
  15.  
  16.          CHARACTER     JOBZ, UPLO
  17.  
  18.          INTEGER       INFO, ITYPE, LDZ, N
  19.  
  20.          REAL          AP( * ), BP( * ), W( * ), WORK( * ), Z( LDZ, * )
  21.  
  22. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  23.      SSPGV computes all the eigenvalues and, optionally, the eigenvectors of a
  24.      real generalized symmetric-definite eigenproblem, of the form
  25.      A*x=(lambda)*B*x,  A*Bx=(lambda)*x,  or B*A*x=(lambda)*x.  Here A and B
  26.      are assumed to be symmetric, stored in packed format, and B is also
  27.      positive definite.
  28.  
  29.  
  30. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  31.      ITYPE   (input) INTEGER
  32.              Specifies the problem type to be solved:
  33.              = 1:  A*x = (lambda)*B*x
  34.              = 2:  A*B*x = (lambda)*x
  35.              = 3:  B*A*x = (lambda)*x
  36.  
  37.      JOBZ    (input) CHARACTER*1
  38.              = 'N':  Compute eigenvalues only;
  39.              = 'V':  Compute eigenvalues and eigenvectors.
  40.  
  41.      UPLO    (input) CHARACTER*1
  42.              = 'U':  Upper triangles of A and B are stored;
  43.              = 'L':  Lower triangles of A and B are stored.
  44.  
  45.      N       (input) INTEGER
  46.              The order of the matrices A and B.  N >= 0.
  47.  
  48.      AP      (input/output) REAL array, dimension
  49.              (N*(N+1)/2) On entry, the upper or lower triangle of the
  50.              symmetric matrix A, packed columnwise in a linear array.  The j-
  51.              th column of A is stored in the array AP as follows:  if UPLO =
  52.              'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP(i
  53.              + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
  54.  
  55.              On exit, the contents of AP are destroyed.
  56.  
  57.      BP      (input/output) REAL array, dimension (N*(N+1)/2)
  58.              On entry, the upper or lower triangle of the symmetric matrix B,
  59.              packed columnwise in a linear array.  The j-th column of B is
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSSSSSPPPPGGGGVVVV((((3333FFFF))))                                                            SSSSSSSSPPPPGGGGVVVV((((3333FFFF))))
  71.  
  72.  
  73.  
  74.              stored in the array BP as follows:  if UPLO = 'U', BP(i + (j-
  75.              1)*j/2) = B(i,j) for 1<=i<=j; if UPLO = 'L', BP(i + (j-1)*(2*n-
  76.              j)/2) = B(i,j) for j<=i<=n.
  77.  
  78.              On exit, the triangular factor U or L from the Cholesky
  79.              factorization B = U**T*U or B = L*L**T, in the same storage
  80.              format as B.
  81.  
  82.      W       (output) REAL array, dimension (N)
  83.              If INFO = 0, the eigenvalues in ascending order.
  84.  
  85.      Z       (output) REAL array, dimension (LDZ, N)
  86.              If JOBZ = 'V', then if INFO = 0, Z contains the matrix Z of
  87.              eigenvectors.  The eigenvectors are normalized as follows:  if
  88.              ITYPE = 1 or 2, Z**T*B*Z = I; if ITYPE = 3, Z**T*inv(B)*Z = I.
  89.              If JOBZ = 'N', then Z is not referenced.
  90.  
  91.      LDZ     (input) INTEGER
  92.              The leading dimension of the array Z.  LDZ >= 1, and if JOBZ =
  93.              'V', LDZ >= max(1,N).
  94.  
  95.      WORK    (workspace) REAL array, dimension (3*N)
  96.  
  97.      INFO    (output) INTEGER
  98.              = 0:  successful exit
  99.              < 0:  if INFO = -i, the i-th argument had an illegal value
  100.              > 0:  SPPTRF or SSPEV returned an error code:
  101.              <= N:  if INFO = i, SSPEV failed to converge; i off-diagonal
  102.              elements of an intermediate tridiagonal form did not converge to
  103.              zero.  > N:   if INFO = n + i, for 1 <= i <= n, then the leading
  104.              minor of order i of B is not positive definite.  The
  105.              factorization of B could not be completed and no eigenvalues or
  106.              eigenvectors were computed.
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.